﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Crosland.Automotriz.Logic.Linq;
using System.Net.Mail;
using Crosland.Automotriz.Facade.Facade;
using Crosland.Automotriz.Facade.Interface;
using System.Configuration;
using DevExpress.Web.ASPxEditors;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Seguridad.Entity;
using Crosland.Automotriz.Seguridad.DataAccess;
using Crosland.Automotriz.Seguridad.Business;
using Crosland.Automotriz.Entidad;
using Crosland.Automotriz.Logic.Funciones;


namespace Crosland.Automotriz.Web.Vehiculos
{
    public partial class wFrmProduccionArmadoNuevo : BaseForm
    {

        iFacadeProduccionArmadoVehiculos BI_PRODUCCION_VEHI_ARMADO = new FacadeProduccionArmadoVehiculos();

        public void Centros()
        {

            cboCentro.DataSource = BI_PRODUCCION_VEHI_ARMADO.ListarCentros();
            cboCentro.TextField = "DES_CENTRO";
            cboCentro.ValueField = "ID_CENTRO";
            cboCentro.DataBind();

        }

		public void CargarEquipos()
		{
            int idCentro = Convert.ToInt32(cboCentro.Value);
			cboEquipo.DataSource = BI_PRODUCCION_VEHI_ARMADO.ListarEquipos("Armado",idCentro);
			cboEquipo.TextField = "NOMBRE_EQUIPO";
			cboEquipo.ValueField = "ID_OPE_MAE_EQUIPOS_CAB";
			cboEquipo.DataBind();
		}

        protected override void Inicializar()
        {
            Centros();
			cboCentro.SelectedIndex = 0;
			CargarEquipos();
			cboEquipo.SelectedIndex = 0;
            CrearTablaVehiculosArmar();
            gvVehiculosArmar.DataBind();

        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {

			if (String.IsNullOrEmpty(txtBuscar.Text))
			{
				lblMsj.Text = "Ingrese un numero de Motor o chasis a buscar.";
				popupMsj.ShowOnPageLoad = true;
				dgvRegistros.DataSource = null;
				dgvRegistros.DataBind();
			}
            else if(txtBuscar.Text.Length<=4)
            {
                lblMsj.Text = "Ingrese ultimos 5 digitos.";
                popupMsj.ShowOnPageLoad = true;
                dgvRegistros.DataSource = null;
                dgvRegistros.DataBind();
            }
			else
			{
				BuscarVehiculo();			
			}
        }

		protected void btnIniciar_Click(object sender, EventArgs e)
		{
			if (gvVehiculosArmar.VisibleRowCount==0)
			{
				lblMsj.Text = "Agregue vehiculos para armar.";
				popupMsj.ShowOnPageLoad = true;
				BuscarVehiculo();
			}
			else
			{
				popupConfirmacion.ShowOnPageLoad = true;
			}
			

		}

		protected void BuscarVehiculo()
		{

			List<T_LOG_VEHICULOS_ARMAR> ListadoBusqueda = new List<T_LOG_VEHICULOS_ARMAR>();
			int idCentro = Convert.ToInt32(cboCentro.Value);

			ListadoBusqueda = BI_PRODUCCION_VEHI_ARMADO.BuscarVehiculosArmar(idCentro, txtBuscar.Text);

			dgvRegistros.DataSource = ListadoBusqueda;
			dgvRegistros.DataBind();
		
		}

		protected void dgvRegistros_PageIndexChanged(object sender, EventArgs e)
		{
			BuscarVehiculo();
		}

		protected void btnSI_Click(object sender, EventArgs e)
		{
            //String nroLote = Convert.ToString(dgvRegistros.GetRowValues(dgvRegistros.FocusedRowIndex, "NRO_LOTE"));
			DateTime fecIni = DateTime.Now;
			string cod_usuario = Session["User"].ToString();
			int idOrgVta = 3;
			int idCentro = Convert.ToInt32(cboCentro.Value);
			int idEquipo = Convert.ToInt32(cboEquipo.Value);

			try
			{

              
                bool blVerificaGrabacion = false;

                blVerificaGrabacion = BI_PRODUCCION_VEHI_ARMADO.GuardarProcesoArmado(fecIni, cod_usuario, idOrgVta,idEquipo);
                int idCab = BI_PRODUCCION_VEHI_ARMADO.NumeroGeneradoGuardarArmado();

                if (blVerificaGrabacion==true)
				{
                    CrearTablaVehiculosArmar();

                    DataTable dt = new DataTable();
                    dt = (DataTable)Session["TablaArmados"];

                    if (idCab > 0)
                    {
                        for (int x = 0; x < dt.Rows.Count; x++)
                        {
                            BI_PRODUCCION_VEHI_ARMADO.GuardarProcesoArmadoDet(idCab, dt.Rows[x][3].ToString(), x + 1, 0, 137, dt.Rows[x][1].ToString(), dt.Rows[x][2].ToString());
                        }
                    }
                    else
                    {
                        lblMsj.Text = "Error al guardar el detalle de vehiculos.";
                        popupMsj.ShowOnPageLoad = true;
                    }

                    Session["TablaArmados"] = null;
					Response.Redirect("/Vehiculos/wFrmProduccionArmado.aspx?id=97&sub=98");
			
				}
				else
				{
					lblMsj.Text = "Error al iniciar el proceso de armado.";
					popupMsj.ShowOnPageLoad = true;
				}


			}
			catch (Exception)
			{
                lblMsj.Text = "Error al iniciar el proceso de armado.";
                popupMsj.ShowOnPageLoad = true;				
			}
		}


        protected void CrearTablaVehiculosArmar()
        {
            DataTable dt = new DataTable();

            if (Session["TablaArmados"] == null)
            {
                dt.PrimaryKey = new DataColumn[] { dt.Columns.Add("ID", typeof(string)) };
                dt.Columns.Add("NRO_MOTOR", System.Type.GetType("System.String"));
                dt.Columns.Add("NRO_CHASIS", System.Type.GetType("System.String"));
                dt.Columns.Add("NRO_LOTE", System.Type.GetType("System.String"));
                dt.Columns.Add("COD_MATERIAL", System.Type.GetType("System.String"));
                dt.Columns.Add("DES_MODELO", System.Type.GetType("System.String"));
                dt.Columns.Add("DES_COLOR", System.Type.GetType("System.String"));
                dt.Columns.Add("CLIENTE", System.Type.GetType("System.String"));
                Session["TablaArmados"] = dt;

            }
            else
            {
                dt = (DataTable)Session["TablaArmados"];

            }

        }

		protected void btnSalir_Click(object sender, EventArgs e)
		{
            Session["TablaArmados"] = null;
            Response.Redirect("/Vehiculos/wFrmProduccionArmado.aspx?id=97&sub=98");
		}

        protected void dgvRegistros_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
        {
            CrearTablaVehiculosArmar();

            DataTable dt = new DataTable();
            dt = (DataTable)Session["TablaArmados"];

            DataRow dr;
            string nroLote = e.CommandArgs.CommandArgument.ToString();

            DataRow[] Fila = dt.Select("NRO_LOTE='" + nroLote + "'");
            int cont=Fila.Count();


            if (cont> 0)
            {
                lblMsj.Text = "El registro seleccionado, ya fue agregado.";
                popupMsj.ShowOnPageLoad = true;
            }
            else
            {
                if (e.CommandArgs.CommandName == "Agregar")
                {
                    List<T_LOG_VEHICULOS_ARMAR> VehiculosArmar = new List<T_LOG_VEHICULOS_ARMAR>();
                    VehiculosArmar = BI_PRODUCCION_VEHI_ARMADO.BuscarLote(nroLote);
                    dr = dt.NewRow();
                    dr.BeginEdit();
                    dr["ID"] = dt.Rows.Count + 1;
                    dr["NRO_MOTOR"] = VehiculosArmar[0].NRO_MOTOR;
                    dr["NRO_CHASIS"] = VehiculosArmar[0].NRO_CHASIS;
                    dr["NRO_LOTE"] = VehiculosArmar[0].NRO_LOTE;
                    dr["COD_MATERIAL"] = VehiculosArmar[0].COD_MATERIAL;
                    dr["DES_MODELO"] = VehiculosArmar[0].DES_MODELO;
                    dr["DES_COLOR"] = VehiculosArmar[0].DES_COLOR;
                    dr["CLIENTE"] = VehiculosArmar[0].CLIENTE;
                    dr.EndEdit();
                    dt.Rows.Add(dr);

                    Session["TablaArmados"] = dt;

                    gvVehiculosArmar.DataSource = dt;
                    gvVehiculosArmar.DataBind();

                }

            }

            
            

        }

        protected void gvVehiculosArmar_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
        {
            DataTable dt = new DataTable();
            dt = (DataTable)Session["TablaArmados"];

            string Id = e.CommandArgs.CommandArgument.ToString();

             if (e.CommandArgs.CommandName == "Quitar")
             {
                 DataRow row = (dt.Rows.Find(Id));
                 dt.Rows.Remove(row);

                 ReenumerarItem(dt);

                 Session["TablaArmados"] = dt;

                 this.gvVehiculosArmar.DataSource = dt;
                 this.gvVehiculosArmar.DataBind();

             }
            
        }

        protected void ReenumerarItem(DataTable d)
        {
            for (int x = 0; x <= d.Rows.Count - 1; x++)
            {
                d.Rows[x].BeginEdit();
                d.Rows[x][0] = x + 1;
                d.Rows[x].EndEdit();
            }

        }

        protected void Page_Load(object sender, EventArgs e)
        {

        }

	

    }
}